ApplicationHint

Otázka od: LUKES Vaclav

5. 12. 2003 9:03

Ahoj,

prosim o radu. Jde o vypis HINTu ve StatusBaru. V jednom okne (Form1) chci
vypisovat Hint ve StatusBar.Panesls[0] a v druhem (Form2) ve
StatusBar.Panels[2].

V prvnim formu (Form1) mam toto:

public
  { Public declarations }
  procedure ApplicationHint(Sender: TObject);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnHint := ApplicationHint;
end;

procedure TForm1.ApplicationHint(Sender: TObject);
begin
  Form1.Panels[0].Text := GetLongHint(Application.Hint);
end;

ale co dat do dalsiho formu (Form2), kdyz chci, aby se hlaska v Hintu
vypisovala ve StatusBaru v Panels[2] ???

Vasek

PS: Form2 volam z Form1 takto:

Form2 := TForm2.Create(Self);
Form2.ShowModal;
Form2.Free;

Odpovedá: Jan Naiser

5. 12. 2003 13:10

Ahoj,

> prosim o radu. Jde o vypis HINTu ve StatusBaru. V jednom okne (Form1) chci
vypisovat Hint ve StatusBar.Panesls[0] a v druhem (Form2) ve
StatusBar.Panels[2].
>
> V prvnim formu (Form1) mam toto:
>
> public
> { Public declarations }
> procedure ApplicationHint(Sender: TObject);
> end;
>
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> Application.OnHint := ApplicationHint;
> end;
>
> procedure TForm1.ApplicationHint(Sender: TObject);
> begin
> Form1.Panels[0].Text := GetLongHint(Application.Hint);
> end;
>
> ale co dat do dalsiho formu (Form2), kdyz chci, aby se hlaska v Hintu
vypisovala ve StatusBaru v Panels[2] ???
>
> Vasek
>
> PS: Form2 volam z Form1 takto:
>
> Form2 := TForm2.Create(Self);
> Form2.ShowModal;
> Form2.Free;

ja bych napsal pro Form2 vse stejne, akorat:

procedure TForm2.ApplicationHint(Sender: TObject);
begin
  Form2.Panels[2].Text := GetLongHint(Application.Hint);
end;

Zrejme si budes muset obslouzit OnHint z aktualniho okna, aby se ti po zmene
okna zpet na Form1 hinty zobrazovaly. Kdysi jsem to tak delal, ale posleze
jsem si napsal potomka StatusBar, ktery mi to dela sam. Koukni se jeste na
AutoHint ve StatusBar.

Honza.